using System.Collections.Generic;
using Newtonsoft.Json;

public class BasePveSkillDataTool : BaseDataTool<BasePveSkillDAO>
{
    protected override List<BasePveSkillDAO> ParseData(string jsonString)
    {
        var wrapper = JsonConvert.DeserializeObject < BasePveSkillWrapper >(jsonString);
        return wrapper.BasePveSkills ?? new List<BasePveSkillDAO>();
    }

    public BasePveSkillDAO FindSkillById(int id)
    {
        return data?.Find(s => s.Id == id);
    }

    public List<BasePveSkillDAO> FindSkillsById(int skillId)
    {
        return data?.FindAll(s => s.SkillId == skillId);
    }
}

public class BasePveSkillWrapper
{
    public List<BasePveSkillDAO> BasePveSkills { get; set; }
}

public class BasePveSkillDAO
{
    public int Id { get; set; }
    public int SkillType { get; set; }
    public int SkillId { get; set; }
    public int SkillStart { get; set; }
    public int SkillTrigger { get; set; }
    public int SkillTarget { get; set; }
    public float TargetChance { get; set; }
    public float EffectAmount { get; set; }
    public string Des { get; set; }
    public string SkillName { get; set; }
    public string Icon { get; set; }
    public float effect_time { get; set; }
}